package br.com.ss.centralaamar.model.entity;

// Generated 02/12/2012 11:09:42 by Hibernate Tools 3.4.0.CR1

import static javax.persistence.GenerationType.IDENTITY;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.validator.constraints.Email;

/**
 * Membro generated by hbm2java
 */
@Entity
@Table(name = "membro", catalog = "centralaamar")
public class Membro implements java.io.Serializable {

	private static final long serialVersionUID = -1291295231738443097L;

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "mem_id", unique = true, nullable = false)
	private Integer id;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "pro_id", referencedColumnName = "pro_id")
	private Profissao profissao;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "peq_id", referencedColumnName = "peq_id")
	private PequenoGrupo pequenoGrupo;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "past_id", referencedColumnName = "past_id")
	private Pastor pastor;

	@OneToMany(mappedBy = "membro", fetch = FetchType.LAZY)
	@Fetch(FetchMode.SELECT)
	@Cascade(CascadeType.SAVE_UPDATE)
	private List<Chamada> chamadas = new ArrayList<Chamada>();

	private String nome;
	private String endereco;
	private String bairro;
	private String celular;
	private String foneResidencial;
	private String foneComercial;
	private String sexo;
	private String membroIgreja;
	private Date dataNascimento;
	private Date dataBatismo;
	private String email;
	private String batizado;
	private String temFilho;
	private String modoConversao;
	private int membrosBatizadoFamilia;
	private String pai;
	private String mae;
	private String amigoContato;
	@Column(name = "interesse", length = 30)
	private String interesse;

	public Membro() {
	}

	public Membro(String nome, String endereco, String bairro, String sexo,
			String membroIgreja) {
		this.nome = nome;
		this.endereco = endereco;
		this.bairro = bairro;
		this.sexo = sexo;
		this.membroIgreja = membroIgreja;
	}

	public Membro(Profissao profissao, String nome, String endereco,
			String bairro, String celular, String foneResidencial,
			String foneComercial, String sexo, String membroIgreja,
			Date dataNacimento, String email) {
		this.profissao = profissao;
		this.nome = nome;
		this.endereco = endereco;
		this.bairro = bairro;
		this.celular = celular;
		this.foneResidencial = foneResidencial;
		this.foneComercial = foneComercial;
		this.sexo = sexo;
		this.membroIgreja = membroIgreja;
		this.dataNascimento = dataNacimento;
		this.email = email;
	}

	public Integer getid() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Profissao getProfissao() {
		return this.profissao;
	}

	public void setProfissao(Profissao profissao) {
		this.profissao = profissao;
	}

	@Column(name = "nome", nullable = false, length = 60)
	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Column(name = "endereco", length = 60)
	public String getEndereco() {
		return this.endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	@Column(name = "bairro", length = 30)
	public String getBairro() {
		return this.bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	@Column(name = "celular", length = 10)
	public String getCelular() {
		return this.celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}

	@Column(name = "foneResidencial", length = 10)
	public String getFoneResidencial() {
		return this.foneResidencial;
	}

	public void setFoneResidencial(String foneResidencial) {
		this.foneResidencial = foneResidencial;
	}

	@Column(name = "foneComercial", length = 10)
	public String getFoneComercial() {
		return this.foneComercial;
	}

	public void setFoneComercial(String foneComercial) {
		this.foneComercial = foneComercial;
	}

	@Column(name = "sexo", nullable = false, length = 1)
	public String getSexo() {
		return this.sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	@Column(name = "membroIgreja", nullable = false, length = 1)
	public String getMembroIgreja() {
		return this.membroIgreja;
	}

	public void setMembroIgreja(String membroIgreja) {
		this.membroIgreja = membroIgreja;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "dataNascimento")
	public Date getDataNascimento() {
		return this.dataNascimento;
	}

	public void setDataNascimento(Date dataNacimento) {
		this.dataNascimento = dataNacimento;
	}

	@Column(name = "email", length = 60)
	@Email(message = "E-mail inválido!")
	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public PequenoGrupo getPequenoGrupo() {
		return pequenoGrupo;
	}

	public void setPequenoGrupo(PequenoGrupo pequenoGrupo) {
		this.pequenoGrupo = pequenoGrupo;
	}

	public Integer getId() {
		return id;
	}

	public String getBatizado() {
		return batizado;
	}

	public void setBatizado(String batizado) {
		this.batizado = batizado;
	}

	public Date getDataBatismo() {
		return dataBatismo;
	}

	public void setDataBatismo(Date dataBatismo) {
		this.dataBatismo = dataBatismo;
	}

	public String getTemFilho() {
		return temFilho;
	}

	public void setTemFilho(String temFilho) {
		this.temFilho = temFilho;
	}

	public String getModoConversao() {
		return modoConversao;
	}

	public void setModoConversao(String modoConversao) {
		this.modoConversao = modoConversao;
	}

	public int getMembrosBatizadoFamilia() {
		return membrosBatizadoFamilia;
	}

	public void setMembrosBatizadoFamilia(int membrosBatizadoFamilia) {
		this.membrosBatizadoFamilia = membrosBatizadoFamilia;
	}

	public String getPai() {
		return pai;
	}

	public void setPai(String pai) {
		this.pai = pai;
	}

	public String getMae() {
		return mae;
	}

	public void setMae(String mae) {
		this.mae = mae;
	}

	public Pastor getPastor() {
		return pastor;
	}

	public void setPastor(Pastor pastor) {
		this.pastor = pastor;
	}

	public String getAmigoContato() {
		return amigoContato;
	}

	public void setAmigoContato(String amigoContato) {
		this.amigoContato = amigoContato;
	}

	public List<Chamada> getChamadas() {
		return chamadas;
	}

	public void setChamadas(List<Chamada> chamadas) {
		this.chamadas = chamadas;
	}

	public String getInteresse() {
		return interesse;
	}

	public void setInteresse(String interesse) {
		this.interesse = interesse;
	}

}
